跳到主要内容

Rust 模块

阐述

每个 Rust 包都是一个模块树:最顶层的模块叫 crate,然后在 src/lib.rssrc/main.rs 中定义 mod xxx 即为各种子模块。

模块的路径分为绝对路径或相对路径:

  • 绝对路径为 crate:: 开头
  • 相对路径为从当前模块开始
    • super:父模块
    • self:子模块(大多数情况可以省略)

在模块内部,子模块和各种项都是默认私有的,如果需要外部使用,就要声明为 pub

模块和文件的对应关系

在文件中声明 mod xxx; 就会从和该模块同名的文件中加载模块,我们可以认为这模块的定义还是在 src/lib.rs 中。

实例

包的树形结构类似于:

crate
└── front_of_house
├── hosting
│ ├── add_to_waitlist
│ └── seat_at_table
└── serving
├── take_order
├── serve_order
└── take_payment

性质

相关内容

参考文献